﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Reflection;
using System.Text;
using KingNET.Controls;
using KingNET.Enum;


namespace KingNET
{
    /// <summary>
    /// Yardımcı methodlar
    /// </summary>
    class Helper
    {

        /// <summary>
        /// Kart resim dosyasınından uygun kart resmini alır
        /// </summary>
        /// <param name="column"></param>
        /// <param name="row"></param>
        /// <returns></returns>
        public static Bitmap GetCardImage(int column, int row)
        {
            using (Bitmap bitmap = new Bitmap(Properties.Resources.CardImages))
            {
                int weight = bitmap.Width / Constants.CARD_COUNT; // Bir satırdaki kart sayısı
                int height = bitmap.Height / Constants.SUIT_COUNT; // Image dosyasındaki sütun sayısı
                int x = column * weight;
                int y = row * height;

                return bitmap.Clone(new Rectangle(x, y, weight, height), System.Drawing.Imaging.PixelFormat.DontCare);
            }

        }

        /// <summary>
        /// Resim dosyasından tüm katları alır
        /// </summary>
        /// <returns></returns>
        public static List<Card> GetDeck()
        {

            List<Card> cards = new List<Card>();

            // Kartlar

            foreach (string suitName in System.Enum.GetNames(typeof(Suit)))
            {
                Suit suit = (Suit)System.Enum.Parse(typeof(Suit), suitName);
                foreach (string cardValueName in System.Enum.GetNames(typeof(CardValue)))
                {
                    CardValue cardValue = (CardValue)System.Enum.Parse(typeof(CardValue), cardValueName);
                    cards.Add(new Card(suit, cardValue));
                }
            }

            //

            return cards;
        }

    }
}
